home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 - Homepage / CHIP.BIN / share / webmaste / csehtmlp / csehtmlp.exe / {app} / ParserRules / delphi.xs < prev    next >
Encoding:
Text File  |  2002-04-22  |  7.4 KB  |  199 lines

  1. //Language: Delphi
  2. //Copyright (c) 1992-2002 Altium Limited             
  3. //All rights reserved.                               
  4. //http://www.dream-com.com                           
  5. //contact@dream-com.com                              
  6.  
  7. // states
  8. State=snormal
  9. State=sasm
  10. State=sproperty
  11. State=sexternal
  12. State=sstring
  13. State=scomment1
  14. State=scomment2
  15. State=scomment3
  16. State=sasmcomment1
  17. State=sasmcomment2
  18. State=sasmcomment3
  19. // tokens
  20. Token=tNone
  21. Token=tstring
  22. Token=tcomment
  23. Token=tident
  24. Token=tinteger
  25. Token=tfloat
  26. Token=tresword
  27. Token=tassembler
  28. Token=turl
  29. Token=twhitespace
  30. //delims
  31. Delimiters=;.,:'"{}[]()?!@#$%^&*-+=|\/
  32.  
  33. // reswords
  34. snormal 'absolute'       snormal tresword
  35. snormal 'abstract'       snormal tresword
  36. snormal 'and'            snormal tresword
  37. snormal 'array'          snormal tresword
  38. snormal 'as'             snormal tresword
  39. //snormal 'asm'            snormal tresword
  40. snormal 'assembler'      snormal tresword
  41. snormal 'automated'      snormal tresword
  42. snormal 'begin'          snormal tresword
  43. snormal 'break'          snormal tresword
  44. snormal 'case'           snormal tresword
  45. snormal 'cdecl'          snormal tresword
  46. snormal 'class'          snormal tresword
  47. snormal 'const'          snormal tresword
  48. snormal 'constructor'    snormal tresword
  49. snormal 'continue'       snormal tresword
  50. snormal 'default'        snormal tresword
  51. snormal 'destructor'     snormal tresword
  52. snormal 'dispid'         snormal tresword
  53. snormal 'dispinterface'  snormal tresword
  54. snormal 'div'            snormal tresword
  55. snormal 'do'             snormal tresword
  56. snormal 'downto'         snormal tresword
  57. snormal 'dynamic'        snormal tresword
  58. snormal 'else'           snormal tresword
  59. snormal 'end'            snormal tresword
  60. snormal 'except'         snormal tresword
  61. snormal 'exit'           snormal tresword
  62. snormal 'export'         snormal tresword
  63. snormal 'exports'        snormal tresword
  64. snormal 'external'       snormal tresword
  65. snormal 'far'            snormal tresword
  66. snormal 'file'           snormal tresword
  67. snormal 'finalization'   snormal tresword
  68. snormal 'finally'        snormal tresword
  69. snormal 'for'            snormal tresword
  70. snormal 'forward'        snormal tresword
  71. snormal 'function'       snormal tresword
  72. snormal 'goto'           snormal tresword
  73. snormal 'if'             snormal tresword
  74. snormal 'implementation' snormal tresword
  75. snormal 'in'             snormal tresword
  76. snormal 'index'          snormal tresword
  77. snormal 'inherited'      snormal tresword
  78. snormal 'initialization' snormal tresword
  79. snormal 'inline'         snormal tresword
  80. snormal 'interface'      snormal tresword
  81. snormal 'is'             snormal tresword
  82. snormal 'label'          snormal tresword
  83. snormal 'library'        snormal tresword
  84. snormal 'message'        snormal tresword
  85. snormal 'mod'            snormal tresword
  86. snormal 'near'           snormal tresword
  87. snormal 'nil'            snormal tresword
  88. snormal 'nodefault'      snormal tresword
  89. snormal 'not'            snormal tresword
  90. snormal 'object'         snormal tresword
  91. snormal 'of'             snormal tresword
  92. snormal 'or'             snormal tresword
  93. snormal 'out'            snormal tresword
  94. snormal 'overload'       snormal tresword
  95. snormal 'override'       snormal tresword
  96. snormal 'packed'         snormal tresword
  97. snormal 'pascal'         snormal tresword
  98. snormal 'private'        snormal tresword
  99. snormal 'procedure'      snormal tresword
  100. snormal 'program'        snormal tresword
  101. snormal 'property'       snormal tresword
  102. snormal 'protected'      snormal tresword
  103. snormal 'public'         snormal tresword
  104. snormal 'published'      snormal tresword
  105. snormal 'raise'          snormal tresword
  106. snormal 'read'           snormal tresword
  107. snormal 'readonly'       snormal tresword
  108. snormal 'record'         snormal tresword
  109. snormal 'register'       snormal tresword
  110. snormal 'reintroduce'    snormal tresword
  111. snormal 'repeat'         snormal tresword
  112. snormal 'resident'       snormal tresword
  113. snormal 'resourcestring' snormal tresword
  114. snormal 'safecall'       snormal tresword
  115. snormal 'set'            snormal tresword
  116. snormal 'shl'            snormal tresword
  117. snormal 'shr'            snormal tresword
  118. snormal 'stdcall'        snormal tresword
  119. snormal 'stored'         snormal tresword
  120. snormal 'string'         snormal tresword
  121. snormal 'stringresource' snormal tresword
  122. snormal 'then'           snormal tresword
  123. snormal 'threadvar'      snormal tresword
  124. snormal 'to'             snormal tresword
  125. snormal 'try'            snormal tresword
  126. snormal 'type'           snormal tresword
  127. snormal 'unit'           snormal tresword
  128. snormal 'until'          snormal tresword
  129. snormal 'uses'           snormal tresword
  130. snormal 'var'            snormal tresword
  131. snormal 'virtual'        snormal tresword
  132. snormal 'while'          snormal tresword
  133. snormal 'with'           snormal tresword
  134. snormal 'write'          snormal tresword
  135. snormal 'writeonly'      snormal tresword
  136. snormal 'xor'            snormal tresword
  137.  
  138. // numbers
  139. snormal [0-9][0-9]*                            snormal  tinteger
  140. snormal \#[0-9A-F]+                            snormal  tinteger
  141. snormal \#\$[0-9A-F]+                            snormal  tinteger
  142. snormal \$[0-9A-F]+                            snormal  tinteger
  143. snormal [1-9][0-9]*\.[0-9]*                    snormal  tfloat
  144. snormal [1-9][0-9]*{\.[0-9]+}|e{[\+\-]}|[0-9]+ snormal  tfloat
  145.  
  146. //idents
  147. snormal   [a-z_A-Z][a-z_A-Z0-9]*  snormal   tident
  148. //white space
  149. //snormal #32*                      snormal   twhitespace
  150.  
  151. //comments
  152. snormal   //                      scomment1 tcomment 
  153. scomment1 [#1-#255]*              snormal   tcomment
  154. scomment1 $                       snormal   tcomment
  155. snormal   \{                      scomment2 tcomment 
  156. scomment2 [^\}]*                  scomment2 tcomment
  157. scomment2 \}                      snormal   tcomment
  158.  
  159. snormal   (\*                     scomment3 tcomment 
  160. scomment3 [^\*]*                  scomment3 tcomment
  161. scomment3 \*[^)]                  scomment3 tcomment
  162. scomment3 [\*]*)                  snormal   tcomment
  163.  
  164.  
  165. //strings
  166. snormal   \'                      sstring   tstring
  167. sstring   [^\']*                  sstring   tstring
  168. sstring   \'                      snormal   tstring
  169. sstring   \'\'                    sstring   tstring
  170. sstring   $                       snormal   tstring
  171.  
  172. // asm
  173. snormal      'asm'                sasm         tresword
  174. sasm         [a-z_A-Z0-9;,@-.]*   sasm         tassembler
  175. sasm         'end'                snormal      tresword
  176. sasm         //                   sasmcomment1 tcomment 
  177. sasmcomment1 [#1-#255]*           sasm         tcomment
  178. sasmcomment1 $                    sasm         tcomment
  179. sasm         \{                   sasmcomment2 tcomment 
  180. sasmcomment2 [^\}]*               sasmcomment2 tcomment
  181. sasmcomment2 \}                   sasm         tcomment
  182.  
  183. sasm         (\*                  sasmcomment3 tcomment 
  184. sasmcomment3 [^\*]*               sasmcomment3 tcomment
  185. sasmcomment3 \*[^)]               asmscomment3 tcomment
  186. sasmcomment3 [\*]*)               sasm         tcomment
  187.  
  188. // numbers
  189. sasm [0-9][0-9]*                            sasm  tinteger
  190. sasm \$[0-9A-F]+                            sasm  tinteger
  191. sasm [1-9][0-9]*\.[0-9]*                    sasm  tfloat
  192. sasm [1-9][0-9]*{\.[0-9]+}|e{[\+\-]}|[0-9]+ sasm  tfloat
  193.  
  194.  
  195. // urls
  196. snormal   www\.[a-z_A-Z0-9@\-.]*   snormal turl
  197. snormal   mailto:[a-z_A-Z0-9@\-.]*   snormal turl
  198.  
  199.